#!/usr/bin/env python
# -*- coding:utf-8 -*-
'''
    扩展类的功能，插件类，男学生和女学生都可以继承一个上课的mixin类，成年人可以继承一个打工赚钱的mixin类。
    一般情况下mixin类不写__init__方法，mixin类里面的有些属性在mixin类本身中不具备，所以不可以把mixin类单独直接的实例化。
    这样做小明本来继承自person只能走路，但加了mixin类，小明可以学习了。
    StudyMixin类则不能直接实例化，因为在这个类中，没有name这个属性，运行study方法会出错。
'''

class Person():
    def __init__(self, name):
        self.name = name

    def walk(self):
        print('行走')


class StudyMixin():
    def study(self):
        print(self.name + '...在上课...'   )



class Student(Person, StudyMixin):
    def __init__(self, name,age):
        Person.__init__(self,name)
        self.age=age

    def eat(self):
        print(self.name + '...在吃饭...')




Student('小明',10).study()
# StudyMixin().study()
# >>> AttributeError: 'StudyMixin' object has no attribute 'name'